$(function(){
    // 1.全选 全不选功能模块
    // 就是把全选按钮（checkall）的状态赋值给三个小的按钮（j-checkbox）就可以了
    $('.checkall').change(function(){
        $('.j-checkbox ,.checkall').prop('checked',$(this).prop('checked'))
        // 点击全选，所有的商品栏变色
        if($(this).prop('checked')){
            $('.cart-item').addClass('check-cart-item')
        }
        else{
            $('.cart-item').removeClass('check-cart-item')
        }
        getSum()
    })

    // 2.如果小复选框选中的个数等于3就应该把全选按钮选上，负责全选按钮不选
    $('.j-checkbox').change(function(){
        // if($('.j-checkbox:checked').length === $('.j-checkbox').length){
        //     $('.checkall').prop('checked',true)
        // }else{
        //     $('.checkall').prop('checked',false)
        // }

        // 简写
        $('.checkall').prop('checked',
            $('.j-checkbox:checked').length === $('.j-checkbox').length
        )
        // 点击单个商品复选框按钮，当前商品栏变色
        if($(this).prop('checked')){
            $(this).parents('.cart-item').addClass('check-cart-item')
        }
        else{
            $(this).parents('.cart-item').removeClass('check-cart-item')
        }
        getSum()
        
    })

    // 3.增减商品数量模块 首先声明一个
    $('.increment').click(function(){
        let n = $(this).siblings('.itxt').val()
        n++
        $(this).siblings('.itxt').val(n)
        let p = $(this).parents('.p-num').siblings('.p-price').html()
        // 截取字符串去除人名币符号(substring())
        p = p.substring(1)
        // 单价*数量的得到金额，并且保留2位小数(toFixed())
        $(this).parents('.p-num').siblings('.p-sum').html('￥' + (p * n).toFixed(2))
        getSum()

    })
    $('.decrement').click(function(){
        let n = $(this).siblings('.itxt').val()
        n--
        if(n === 0){
            return
        }
        $(this).siblings('.itxt').val(n)  
        let p = $(this).parents('.p-num').siblings('.p-price').html()
        p = p.substring(1)
        $(this).parents('.p-num').siblings('.p-sum').html('￥' + (p * n).toFixed(2)) 
        getSum() 
    })

    // 4.用户修改文本框的值，计算
    $('.itxt').change(function(){
        let n = $(this).val()
        let p = $(this).parents('.p-num').siblings('.p-price').html()
        p = p.substring(1)
        $(this).parents('.p-num').siblings('.p-sum').html('￥' + (p * n).toFixed(2))
        getSum()
    })
    // 5.计算数量和总和
    getSum()
    function getSum(){
        let count = 0   //计算总件数
        let sum = 0     //计算总额
        //计算数量
        $('.itxt').each(function(i,ele){ 
            // 判断当前的商品复选框是否勾选
            if($(ele).parents('.p-num').siblings('.p-checkbox').children('.j-checkbox').prop('checked')){
                count += parseInt($(ele).val())
            }
            
        })
        $('.amount-sum em').html(count)
        // 计算总价格
        $('.p-sum').each(function(i,ele){
            // 判断当前的复选框是否勾选
            if($(ele).siblings('.p-checkbox').children('.j-checkbox').prop('checked')){
                sum +=parseFloat($(ele).html().substring(1))
            }    
        })
        $('.price-sum em').html('￥' + sum.toFixed(2))
    }

    // 6.删除商品模块
    //(1)商品后面的删除按钮
    $('.p-action a').click(function(){
        $(this).parents('.cart-item').remove()
        getSum()
    })
    // (2)删除选中的商品
    $('.remove-batch').click(function(){
        // 删除的是小的复选框选中的商品
        $('.j-checkbox:checked').parents('.cart-item').remove()
        getSum()
        
    })
    // (3)清除购物车删除所有的商品
    $('.clear-all').click(function(){
        $('.cart-item').remove()
        getSum()
    })
   
})